import { SendMessageData } from "./sendMessageData";
import { AnnotationRoot } from "@langchain/langgraph";
import { TokenUsage } from "../llms/modelUsage";

export interface IWorkflowNodeEndEventArgs {
    modelResult: string;
}

export interface IWorkflowNode {
    OnMessage: (sender: IWorkflowNode, args: SendMessageData) => void;
    name: string;
    ResultField: string;
    // systemPrompt?: string;
    // userMessages?: string[];
    inputVars?: AnnotationRoot<any>;
    outputVars?: AnnotationRoot<any>;
    workflowID: string;
    usage?: TokenUsage;
    Stop(): void;
    Run(): Promise<any>;
}